A. Field of the Invention
This invention relates to the field of data communication and apparatus and methods for receiving and transmitting data, video and/or audio communications through a communications access system, such as an integrated network access server. More particularly, the invention relates to apparatus and methods for distributing the processing of higher level network protocols for a single communication session in such a system among multiple computing platforms.
Examples of such higher level network protocols which are subject to distributed processing described herein are the Point-To-Point Protocol (PPP), the Serial Line Interface Protocol (SLIP), and the Real-time Transport Protocol (RTP). However, the principles and methods of the invention are applicable to other types of higher level protocols.
As described in detail below, the processing of the protocols is distributed in the preferred embodiments such that one computing platform, such as the computing platform at a local or wide area network gateway, performs part of the processing of the protocol, while another computing platform, e.g., the computing platform in a digital signal processor (DSP) or modem module, performs the remainder of the protocol processing. In this manner, the throughput and efficiency of the call processing of the network access server is substantially increased.
B. Description of Related Art
The methods disclosed herein can be performed by an element of communications equipment referred to herein as a "network access server." The network access server is a device that is capable of receiving a plurality of simultaneous incoming calls from the Public Switched Telephone Network (PSTN) and routing them to a packet switched computer network for transmission to a host computer system, or telephone or other device connected to the computer network. The network access server is also capable of handling multiple simultaneous calls from the computer network and directing them onto a communications link in the PSTN for transmission to the remote user.
The patent to Dale M. Walsh et al., U.S. Pat. No. 5,528,595, entitled MODEM INPUT/OUTPUT SIGNAL PROCESSING TECHNIQUES which is fully incorporated by reference herein, describes an integrated network access server suitable for use in the present invention. Such a device has been commercialized widely by 3Com Corporation (previously U.S. Robotics Corp.) under the trade designation Total Control.TM. Enterprise Network Hub. Network access servers similar in functionality, architecture and design are available from other companies, including Ascend Communications, Livingston Enterprises, Multitech, and others. The invention is suitable for implementation in network access servers from the above companies, and other similar devices.
In order to facilitate such communication, industry and international standards bodies have established sets of functional requirements, conventions or rules that govern the transmission of data over both telephone and packet switched computer networks. These functional requirements or rules are known in the art as "protocols." The implementation of protocols is necessary in order to bring order, and standardization, to the communications field and allow equipment of diverse manufacturers to be interoperable. Some protocols are considered low level transmission media related modulation protocols, such as modulation schemes implemented in a modem, for example V.34, V.22 bis, etc. Other protocols are considered higher level, and relate to such features as error control, transmission control protocols and network level routing and encapsulation of data. The requirements of these latter protocols are typically prepared as a "Request For Comment" document, circulated among the industry, and eventually adopted by the standards bodies. The present invention is concerned with the distributed processing of these higher level network control protocols. Examples of such protocols are the Point-to-Point Protocol (PPP), the Serial Line Interface Protocol (SLIP), and the Real-time Transport Protocol (RTP).
In order to process communications between the computers on the local area network and the remote computers connected via the telephone system, the processing of the higher level protocols must be performed. In the prior art, a single platform at the network interface has been used to perform the higher level processing. It has been discovered that this results in inefficiencies and loss of throughput, particularly when the maximum call capacity in the network access server in either the inbound or outbound direction is approached.
In our distributed processing invention, a dramatic increase in the efficiency of the call routing process can be achieved, thereby maximizing call throughput and minimizing the overall call connect time. This result is achieved by distributing the computationally intensive protocol processing of higher level network protocols (such as Point-to-Point Protocol ( PPP) processing or RTP) among multiple computing platforms such as the modems of the network access server assigned to each of the sessions. As another example, processing of the protocols may be distributed by performing some of the processing in one platform at the gateway and performing computationally intensive protocol processing in the modems. For example, RTP protocols associated with audio and video conferencing may be distributed such that some processing of RTP is performed in the gateway platform, for example RTCP, IP, UDP and central coordination of RTP streams, while the modem or DSP platform performs RTP jitter buffering and encapsulation of audio frames with RTP header data. In addition, the modem or DSP platform perform lower level protocol processing, including all audio processing, transcoding, DTMF (dual tone multifrequency tone) generation, and echo cancellation.
Various types of communication devices are placed at the interface between a modem and a computer network, such as routers, terminal servers, and modules sometimes referred to as "gateway cards." These devices implement software programs that control the inflow and outflow of calls between the modems and the network. These devices are referred to herein generally as "network interface" devices. One layer of the software hierarchy that is run in these devices is known in the art as an "application layer". This document makes occasional reference to the terms "applications", "application layer" and "application software layer." As used herein, these terms means a communication control and management software layer above the protocol stacks in a communication device, the device typically placed at the gateway (or interface) between a modem and a computer network.
To better illustrate some of the advantages of the invention, one embodiment of the invention is described herein in which the modem or DSP platform in the network access server perform asynchronous High-level Data Link Control (HDLC) framing of Point-to-Point Protocol (PPP). The protocol could be synchronous HDLC framing of PPP in other implementations. The modem performs the flag sequence, data transparency, and Frame Check Sequence (FCS) on each PPP frame. The second protocol processing performed in the modem or DSP platform is Serial Line Internet Protocol (SLIP).
In the prior art, when an application software routine at the network access server gateway creates a PPP (or SLIP) frame, it checks each byte, looking for a byte that is a control character. If the application finds a control character, a PPP Escape character (or SLIP Escape character) is stuffed into the data stream. Then, the original control character is translated to a transparent character and stuffed into the data stream. This usually requires two buffers, because extra characters are added. For PPP frames, while the application is looking at each byte of the frame, it must also calculate the FCS. When the application receives a PPP (or SLIP) frame, it must do the reverse of the above process. In some network access servers, such as the Total Control network access server of 3Com Corporation, a large number of modems may be active at any one time. This means that the gateway computing platform in the network access server would be doing this process for each of the modems if the prior art technique was used. This results in a extremely heavy processing load on one computing platform, and introduces latencies and delays in the call routing process. These effects combine to significantly reduce call throughput, particularly where a large volume of calls are simultaneously received or transmitted through the network access server. This call latency and delay is substantially reduced in accordance with the methods and system described herein. Similar improvements are expected in an situation wherein distributed processing of other higher level protocols is performed, such as RTP, as set forth below.